#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct BEAMForceData
{
    SG::DataStructure::Common::Id   m_eId      = 0;      /// Element identification number
    SG::DataStructure::Common::Id   m_GRID[11] = { 0 };  /// Number of active grids or corner grid ID
    SG::DataStructure::Common::Real m_SD[11]   = { 0 };  /// Station distance divided by length
    SG::DataStructure::Common::Real m_BM1[11]  = { 0 };  /// Bending moment plane 1
    SG::DataStructure::Common::Real m_BM2[11]  = { 0 };  /// Bending moment plane 2
    SG::DataStructure::Common::Real m_TS1[11]  = { 0 };  /// Shear plane 1
    SG::DataStructure::Common::Real m_TS2[11]  = { 0 };  /// Shear plane 2
    SG::DataStructure::Common::Real m_AF[11]   = { 0 };  /// Axial Force
    SG::DataStructure::Common::Real m_TTRQ[11] = { 0 };  /// Total   Torque
    SG::DataStructure::Common::Real m_WTRQ[11] = { 0 };  /// Warping Torque
    SG::DataStructure::Common::Id   m_domainId = 0;      /// Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const BEAMForceData& val1, const BEAMForceData& val2);

///< @brief 排序使用
DECLSPEC bool operator< (const BEAMForceData& a, const BEAMForceData& b);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
